This application claims priority under 35 U.S.C. xc2xa7119 to Italian Application Serial No. TO2001A000553, entitled xe2x80x9cControl System for Robotsxe2x80x9d and filed on Jun. 8, 2001, naming Aldo Bottero, Luciano Cane, Giorgio Cantello, Guido Cargnino, and Antonio Zaccagnini as inventors, the specification of which is hereby incorporated by reference in its entirety.
The present invention relates generally to control systems for robots, and more particularly to a control system for industrial robots.
A control system for robots of a classic type can be represented in a general and synthetic way by three functional blocks.
A first block is represented by the supervising or monitoring function. This carries out automation of the system by executing the user program. It receives at input and generates at output signals of a logic type, which enable management of the system and of the corresponding diagnostic and safety functions. It communicates with other control units (factory automation) or additional cards (cell automation), receiving information that conditions execution of the application program.
A second block is represented by the function for generation and control of the movement. When it receives requests for movement from the user program, it performs generation of the paths of movement and (possibly) torque for the motors of the system and communicates with the regulating functions.
Finally, a third block is represented by the regulating function. This receives the position and torque paths, measures the angular/linear positions of the motors present in the system and calculates the electric currents to be sent to the various motors in order to guarantee execution of the user program within the times envisaged and with the required accuracy. This functional block manages generation of the power signals and interfaces with the measuring instrumentation.
The above functional structure is general and representative of practically all the controls for robots currently present on the market. The various products are differentiated by the particular make-up of the architecture that they present.
Normally, the system architecture that implements the three functions mentioned above envisages the use of three levels of processors, which communicate with one another in various ways:
a main control unit which performs the function of supervision;
one or more units for performing the function of generation and control of movement; and
one or more units for controlling the system by measuring the angular/linear positions of the actuators and by generating conditioning signals for the drives.
Transmission of information between the various functional blocks within the times and in the modes required is what guarantees proper execution of the system. The communication between the various control units is characterized by different levels of priority and complexity and by more stringent time constraints, as the generation of the power signals is approached.
Of particular importance for its impact on machine performance in terms of movement is the communication between the control unit that manages the generation of the position path and the units that perform control of position and torque of the motors.
The path generator receives from the interpreter of the application program user requests for movement and calculates the displacement in cartesian space of the end point of the kinematic chain. This point coincides with the equipment necessary for the particular application. The description of the geometry of the machine (kinematics) makes it possible to calculate, starting from the Cartesian displacement requested, the joint paths (angular positions) for the motors.
The above paths are calculated according to points and communicated to the calculation units that carry out position control of the motors. The number of points that describe and constrain the path in the joint space (evolution in time of the angular positions of the motors) conditions the accuracy and the rapidity with which the robotic arm follows the Cartesian path.
As the number of points increases, the resolution with which the path is described increases and the interval of time that elapses between two adjacent points decreases. This contributes to reducing the delays between the generation of the path and the actual position of the machine.
As the number of points increases, the number of variables transmitted in unit time increases.
In addition to the paths of the desired angular positions, the calculation units responsible for position control receive (and transmit) information which enables:
verification of execution of the movement in progress;
adjustment of regulation of the motors according to the working conditions (for example, the precalculated values of the balancing currents of the torque applied to the axes by gravity); and
management of system diagnostics.
There thus emerges clearly the importance and critical nature of the communication between the function of generation of the path position desired and the closed-loop function for control and regulation of the actual position.
Owing to the large amount of information required for making the communication between the two functional levels, the solutions so far proposed in the art are numerous.
With a certain degree of simplification, but with substantial adherence to the actual situation, these known solutions fall within two basic reference architectures.
One first solution which has been widely used in the past is illustrated in the block diagram of FIG. 1.
According to this solution, two central processing units (CPUs) 1 and 2, one dedicated to planning paths, the other dedicated to position control, communicate with one another via a bus (for example, a Vesa Module Europa (VME) bus) or via a shared memory (for example, a dual-port random access memory (RAM)), whilst the current references and the positions measured form two signal buses (in general, analog signals) 3, 4 that connect drives 5.1, . . . . 5.n and motors 6.1, . . . , 6.n to the control electronics through the demux/mux blocks 3a and 4a. This solution affords the advantage of connecting the two CPUs 1, 2 together by means of dedicated and fast communication channels (at times the two CPUs are on the same card).
The main disadvantages of the above solution are the following:
whilst the communication channel between the CPUs is dedicated and readily performs a xe2x80x9cpoint-to-pointxe2x80x9d connection, it is not, however, in itself a xe2x80x9cmultipointxe2x80x9d communication channel; and
the buses of the analog signals are costly (they require a dedicated hardware for the conditioning of the signals) and are far from immune from disturbance.
A variant of the architecture represented in FIG. 1 envisages the use of drives that in part provide interlocking functions (control of speed of the motor). In this case, even though the drives are digital (with a CPU on board that performs the functions of speed control), the signals sent to the drives are analog signals (voltages referred to a ground) and are proportional to the desired r.p.m. The position-control loops are closed by the dedicated CPU that is responsible for measuring the angular positions of the motors.
In more recent times there have been developed digital drives with speed-regulating and position-regulating functions organized according to the criteria represented in FIG. 2. In this case, the communication between the CPU 1, which generates the path, and the CPUs that control the position of the motors 6.1, . . . , 6.n (the said CPUs being incorporated in the CPU of the digital drives 5.1, . . . , 5.n) uses a field bus 3, 4, which transfers information in a digital way. The control loops are closed locally by the CPUs of the drives 5.1, . . . , 5.n. The actual positions measured, together with other information, are sent to the CPU that handles the generation of the path for verification of the execution of the movement in progress and for diagnostics activities. Also in this case, associated to the field bus 3, 4 are respective demux 3a and mux 4 blocks.
With the above control architecture there is eliminated transmission of information in an analog form. However, also the above solution is not without its disadvantages.
For example, there does not in general exist a single CPU that performs position control. This means that no CPU that closes the position loops has complete knowledge of the overall status (positions, currents) of the entire machine. In general, the CPUs of commercially available drives perform simple control functions and have a xe2x80x9cclosedxe2x80x9d software architecture which is far from suited to adjustments of the control action according to the applicational requirements.
Furthermore, any adjustment of the position control according to the applicational requirements is to be made on board the only CPU (namely, the CPU 1 of FIG. 2) that knows the overall status of the machine (angular positions and currents of the motorsxe2x80x94if these are transmitted by the drives). The position control function is thus performed on two levels: drives (distributed regulation) and control electronics (xe2x80x9cmachinexe2x80x9d regulation, adaptation of the control to the operating conditions and to the applicational requirements). The considerable advantage of having the position-control function performed by a single CPU is lost.
Finally, communication between the CPU and the drives uses a general-purpose field bus. This means that the information transmitted is subject to the rules of the protocol used. It may be difficult to guarantee that the information is sent and received in a synchronous way: the points that describe the position paths refer to the same instants in time but are received by the drives at different instants in times. This could introduce deformations in the actual path followed by the machine, the extent of which is a function of the communication on the BUS, the possible transmission delays, and their variability in time.
Accordingly, there is a need in the art for an improved control system for robots.
The purpose of the present invention is therefore to provide an improved robot-control architecture, such as may overcome the drawbacks and disadvantages delineated hitherto.
Generally, the present invention comprises a control system for robots provided with parts that are able to move according to paths determined as a result of the application of control signals to the motors. A control unit generates and controls these paths, while a drive unit generates the control signals used to control the motors according to the paths generated by said control unit. Additionally, a dedicated Ethernet or other type of network connects the control unit to the drive unit.
The control unit typically comprises at least two dedicated central processing units (CPUs), one of which performs a function of supervision and the other a function of generation and control of the paths. The CPUs are connected to one another via a bus or buses, for example of the peripheral component interconnect (PCI) type. The control signals may be either phase or voltage signals. Similarly, the feedback signals may be phase signals, current signals or position signals of the axes of said motors.
The drive unit operates according to a general feedback scheme, sending drive signals to, and receiving corresponding feedback signals from the motors. In one embodiment, the feedback signals comprise digital position signals generated via encoders.
According to the present invention, the above purpose is achieved thanks to a control architecture for robots having the characteristics referred to in the specification and claims which follow.